The synchronization of data between two devices—such as between a personal digital assistant (PDA) and a desktop computer—may be relatively common today. However, with every year that has passed, the number of computing devices and services commonly used has grown, and synchronization schemes that offer additional functionality—like “multi-master” synchronization where many different entities can modify the same synchronized data—have become more common. With these advances, the need to synchronize data between more than just two devices is becoming more widespread.
In a “synchronization community” comprised of a variety of different “synchronization participants,” such as computing devices, services, applications, and so on, some or all of the synchronization participants may modify and synchronize data. A variety of schemes may be used to synchronize this data. Such schemes may operate in “pair-wise” fashion, where synchronization participants synchronize, possibly in turn, with other synchronization participants. Other environments may use other types of synchronization, where, for example, a particular synchronization operation may occur between more than just two participants.
Regardless of how the synchronization of data is performed, the question of how such synchronization operations between individual members are organized or orchestrated may affect the efficiency and usability of the synchronization participants in the synchronization community. For example, some systems for orchestrating synchronizations of multiple devices require that all devices in the synchronization community be synchronized before any particular device can be disconnected and removed. Such a requirement, for example, may make it particularly hard for a user of a portable device like a mobile phone or media player to quickly synchronize the data in which they are interested. Various other problems may also exist when orchestrating synchronization operations between multiple devices.